BOXY – 2D Top-Down Shooter is a Unity-based action game developed to showcase technical proficiency, design thinking, and a structured production workflow. The project was conceived as a compact yet feature-rich experience demonstrating my capabilities in player control systems, AI design, procedural mechanics, and game polish.
In BOXY, players navigate a minimalistic arena from a top-down perspective, controlling a cube-shaped character that must survive waves of hostile enemies. The gameplay focuses on movement precision, shooting accuracy, and strategic positioning.
This case study documents the full development process — from concept ideation through technical implementation and testing — emphasizing design philosophy, problem-solving, and lessons learned.
The inspiration for BOXY came from the simplicity and readability of classic arcade shooters like Geometry Wars and Asteroids, combined with the modern emphasis on tight controls and visual clarity.
The overarching design philosophy centered on clarity through simplicity: stripping away unnecessary complexity to highlight tight feedback loops and satisfying combat rhythm.
The project began with a clear structural plan, dividing gameplay into core systems — Player, Enemies, Weapons, and Game Management. Each subsystem was implemented as a modular component, allowing for efficient testing and iteration.
A minimalist aesthetic was chosen early: solid-color shapes on a neutral background, ensuring maximum visual clarity during fast-paced play. Early prototypes focused purely on player movement and shooting to establish the “feel” before adding combat elements.
The player’s movement system was built around Unity’s Rigidbody2D for physics-driven control. Movement was handled via normalized input vectors, allowing smooth diagonal motion and consistent speed in all directions. Shooting direction was decoupled from movement using independent input axes — one for movement, another for aiming.
Fine-tuning acceleration, deceleration, and maximum velocity became essential to achieving tight, responsive handling. Early playtests emphasized the need for precision over speed, leading to a control model that rewarded deliberate positioning.
The weapon system was designed with flexibility in mind. Bullets were implemented as pooled prefabs, managed by an ObjectPooler to optimize performance and minimize garbage collection overhead.
Each projectile carried data for speed, damage, and lifespan. Fire rate and spread could be adjusted to allow experimentation with different weapon archetypes (e.g., single-shot, burst fire). This modularity supported future scalability and rapid iteration during testing.
Enemy entities operated through state-driven AI scripts. Basic enemy types pursued the player using simple steering behaviors, while more advanced variants incorporated ranged attacks or evasive patterns.
Pathfinding relied on directional steering rather than grid-based navigation, maintaining lightweight computational overhead suitable for real-time performance.
A wave-based spawning system controlled enemy count and pacing, gradually increasing difficulty through frequency and enemy mix. This created a dynamic escalation curve that kept gameplay challenging without overwhelming the player.
Combat relied heavily on instant feedback to maintain engagement. Particle bursts, hit flashes, and screen shake were integrated to reinforce each interaction.
Damage handling used a centralized HealthManager component for both player and enemy entities, streamlining logic for damage detection and death events. Sound effects and short impact animations were added to emphasize rhythm and reward.
The game followed a looping structure: Start → Combat → Game Over → Restart.
The GameManager handled transitions between states, spawning waves, tracking score, and detecting defeat conditions. The UI system provided score tracking, health indicators, and restart options using Unity’s Canvas and TextMeshPro.
A minimalist UI layout reinforced the clean visual identity of the game, keeping player focus on movement and survival.
The code architecture was intentionally modular and event-driven:
This structure allowed each system to operate independently while communicating through events, promoting scalability and maintainability.
Because numerous objects (enemies, bullets, particles) could exist simultaneously, optimization was crucial. Techniques included:
These optimizations ensured stable performance at 60 FPS even during intense combat scenarios.
Enemy spawn locations and wave timing included controlled randomness to enhance replayability. Randomization was balanced with constraints to avoid unfair scenarios — for example, preventing enemies from spawning too close to the player.
Early versions suffered from overly sensitive movement, leading to imprecise aiming and player frustration. The solution involved adjusting acceleration curves and introducing subtle drag to simulate weight, achieving a more grounded feel.
High-speed bullets occasionally missed collision detection due to tunneling issues. Switching projectiles to continuous collision detection and implementing hitbox-based validation resolved inconsistencies.
When enemy numbers increased, performance dips occurred due to redundant physics calculations. Refactoring AI behaviors to avoid unnecessary raycasts and employing coroutine-based logic for timed actions significantly improved stability.
Testing followed an iterative cycle: implement → test → refine. Key insights emerged from repeated playtesting:
Incremental adjustments led to a balanced experience where difficulty scaled naturally, encouraging replayability and mastery.
The finished version of BOXY – 2D Top-Down Shooter delivered on its design objectives:
The game succeeds as both a technical showcase and a creative expression of minimalist design principles within an interactive system.
The project offered several key takeaways:
These insights reinforced the importance of iterative design and holistic thinking in game development — balancing technical execution with experiential design.
Potential future extensions include:
Each of these enhancements would build upon the existing foundation while deepening the game’s tactical and sensory depth.
BOXY – 2D Top-Down Shooter represents a comprehensive exercise in both creative and technical game development. Through its creation, I refined my skills in Unity programming, systems design, and iterative problem-solving. The project demonstrates not only proficiency in building functional game systems but also an understanding of how subtle design choices influence the player experience.
By combining clean architecture, responsive mechanics, and deliberate aesthetic restraint, BOXY achieves a balance between simplicity and depth — an embodiment of effective design through focus.